Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add JS module detection rewriting #810

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

tw4l
Copy link
Member

@tw4l tw4l commented Feb 2, 2023

Description

This PR modifies pywb to detect and rewrite JS modules. Global overrides are imported in modules via a new _wb_module_decl.js static file.

This also bumps wombat to 3.4.2.

Motivation and Context

JavaScript modules were previously not detected, which caused errors in replay for sites that use them.

Types of changes

  • Replay fix (fixes a replay specific issue)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added or updated tests to cover my changes.
  • All new and existing tests passed.

@ato
Copy link
Contributor

ato commented Aug 16, 2024

I tested this on a site we've been handling trouble with (https://www.aucyberexplorer.com.au/). Unfortunately this site uses JavaScript modules that don't start with import or export so the is_module check doesn't trigger. It looks like wabac.js handles this problem by introducing a new esm_ modifier so the detection is based on the context in the referencing page rather than the contents of the script file alone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants